#include <stdlib.h>
#include <string.h>

enum{ SIG_DESC_SIZE = 32};

typedef struct {
    char sig_desc[SIG_DESC_SIZE];
}signal_info;

void func(size_t num_of_records,size_t temp_num,const char *tmp2){
    signal_info *start = (signal_info *)calloc(num_of_records,sizeof(signal_info));
    signal_info *point = start + temp_num - 1;
    if (tmp2 == NULL){
        /* Handle error */
    }
    memcpy(point->sig_desc,tmp2,SIG_DESC_SIZE);
    /* ... */
}